/**
 * 在这里定义和用户相关的路由处理函数，供 /router/user.js 模块进行调用
 */
// 导入数据库操作模块
const db = require('../db/index')
// 使用 bcryptjs 对用户密码进行加密
const bcrypt = require('bcryptjs')

// 注册用户的处理函数
exports.regUser = async (req, res) => {
    // 拿到客户端传过来的值
    let { username, password } = req.body;
    // 定义查找用户名称sql 
    const sqlUsername = `select username from ev_users where username=?`
    let { err: verr, results: vres } = await dbSql({ sql: sqlUsername, where: [username] })
    // 判断sql是否成功
    
    if (verr) {
        return res.cc(verr)
    }
    // 用户名被占用
    if (vres.length > 0) {
        return res.send({ status: 1, message: '用户名被占用，请更换其他用户名！' })
    }
    // 添加用户
    // 定义添加用户的sql
    const addSql = `insert into ev_users set ?`
    // 密码加密
    password = bcrypt.hashSync(password, 10);
    let { err: addErr, results: addRes } = await dbSql({ sql: addSql, where: { username, password } })
    // 判断sql是否成功
    if (addErr) {
        return res.cc(addErr)
    }
    res.cc('注册成功',0)
}

// 登录的处理函数
exports.login = (req, res) => {
    res.send('login OK')
}
function dbSql(data) {
    return new Promise((resolve, reject) => {
        db.query(data.sql, data.where, (err, results) => {
            let res = {
                err, results
            }
            resolve(res)
        })
    })
}
